import type { FormSchemaGetter } from '#/adapter/form';
import type { VxeGridProps } from '#/adapter/vxe-table';

import { renderTag } from '#/utils/render';

export const querySchema: FormSchemaGetter = () => [
  {
    component: 'Input',
    fieldName: 'originalName',
    label: '源文件名',
    hideLabel: true,
    componentProps: {
      placeholder: '请输入源文件名/后缀',
    },
  },
  // {
  //   component: 'Input',
  //   fieldName: 'fileSuffix',
  //   label: '文件类型',
  //   hideLabel: true,
  //   componentProps: {
  //     placeholder: '请输入文件类型',
  //   },
  // },
  // {
  //   component: 'Input',
  //   fieldName: 'service',
  //   label: '服务商',
  // },
  {
    component: 'Input',
    fieldName: 'fileName',
    label: '文件名',
    hideLabel: true,
    componentProps: {
      placeholder: '请输入URL中的文件名/后缀',
    },
  },
  {
    component: 'RangePicker',
    fieldName: 'createTime',
    label: '上传时间',
    hideLabel: true,
    componentProps: {
      placeholder: ['请选择上传时间', '请选择上传时间'],
    },
  },
];

export const columns: VxeGridProps['columns'] = [
  {
    align: 'center',
    type: 'checkbox',
    resizable: false,
    width: 45,
  },
  // {
  //   title: '服务商',
  //   field: 'service',
  //   align: 'center',
  //   minWidth: 120,
  //   width: 120,
  //   slots: {
  //     default: ({ row }) => {
  //       return renderTag(row.service || '无服务商', '#f50');
  //     },
  //   },
  // },
  // {
  //   title: '文件名',
  //   field: 'fileName',
  //   showOverflow: true,
  // },
  {
    title: '源文件名',
    field: 'originalName',
    minWidth: 250,
    width: 250,
    showOverflow: true,
  },
  {
    title: '类型',
    field: 'fileSuffix',
    align: 'center',
    minWidth: 80,
    width: 80,
    slots: {
      default: ({ row }) => {
        return renderTag(row.fileSuffix || '未识别', '#f50');
      },
    },
  },
  {
    title: '附件URL/预览',
    field: 'url',
    minWidth: 250,
    showOverflow: true,
    slots: { default: 'url' },
  },
  {
    title: '上传时间',
    field: 'createTime',
    align: 'center',
    minWidth: 160,
    width: 160,
  },
  {
    title: '上传人',
    field: 'createByName',
    align: 'center',
    minWidth: 120,
    width: 120,
  },

  {
    field: 'action',
    fixed: 'right',
    align: 'center',
    slots: { default: 'action' },
    title: '操作',
    resizable: false,
    width: 'auto',
  },
];
